C#中如何让数组的下标从[1,1]开始

来源:百度知道 编辑:UC知道 时间:2024/06/02 19:19:09
例如,一般的数组,定义个a[2,3],他是从a[0,0]开始a[1,2]结束
怎么可以让数组第一个为a[1,1]
应该可以用array.createinstance()方法实现,可惜我看不懂书上的,求高手帮助

创建下限非0的数组
使用Array.CreateInstance()方法:
public static Array CreateInstance(Type elementType, int[] lengths, int[] lowerBounds);
elementType : 要创建的 Array 的 Type。
lengths : 一维数组,它包含要创建的 Array 的每个维度的大小
lowerBounds : 一维数组,它包含要创建的 Array 的每个维度的下限(起始索引)。
再运行下下面的代码理解理解
int[] myArrLen = { 4 };
int[] myArrLow = { 2 };
Array myArrayTwo=Array.CreateInstance( typeof(String), myArrLen, myArrLow );
myArrayTwo.SetValue( "two", 2 );
myArrayTwo.SetValue( "three", 3 );
myArrayTwo.SetValue( "four", 4 );
PrintIndexAndValues( myArrayTwo );
以上内容从网上搜集而来,我觉得挺好懂的了,记得运行下
myArrayTwo.SetValue( "five", 5 );

为什么一定要设置1、1的下标啊?即使用createinstance可以实现,相信也没有微软官方的代码有效率吧?

你可以直接在代码里控制下标,在要读取数据的时候,直接-1就可以了!

比如,你要读取第数组中 第1行-第2列 的值
假定 str 是你的数组字段名,你可以

str[行-1][列-1]

查一下
C#是可以定义下标非0数组的.

createinstance这是个重写方法吧。